home *** CD-ROM | disk | FTP | other *** search
/ Aminet 39 / Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso / Aminet / util / misc / InstallerFXSou.lha / Source Release1.10 / MainCode.s < prev    next >
Encoding:
Text File  |  1997-05-14  |  19.7 KB  |  1,374 lines

  1.  
  2. ; Storm C Compiler
  3. ; MainCode.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _std__in
  7.     XREF    _std__out
  8.     XREF    _std__err
  9.     XREF    _DOSBase
  10.     XREF    _SysBase
  11.     XREF    _UtilityBase
  12.  
  13.     SECTION ":0",CODE
  14.  
  15.  
  16.     XDEF    _Makefilename
  17. _Makefilename
  18. L110    EQU    -$C
  19.     link    a5,#L110
  20.     movem.l    d2/d3/a6,-(a7)
  21. L100
  22.     moveq    #0,d2
  23.     moveq    #0,d3
  24.     move.l    _DOSBase,a6
  25.     jsr    -$216(a6)
  26.     move.l    d0,-$C(a5)
  27.     move.l    #$200,d0
  28.     move.l    _mypool,a0
  29.     move.l    _SysBase,a6
  30.     jsr    -$2C4(a6)
  31.     move.l    d0,_myfilename
  32.     move.l    #$200,d0
  33.     move.l    _mypool,a0
  34.     move.l    _SysBase,a6
  35.     jsr    -$2C4(a6)
  36.     move.l    d0,_myconfigfile
  37.     move.l    _myfilename,a0
  38.     cmp.w    #0,a0
  39.     bne.b    L104
  40. L101
  41.     move.l    _myconfigfile,a0
  42.     cmp.w    #0,a0
  43.     beq.b    L109
  44. L102
  45.     bra.b    L104
  46. L103
  47.     move.l    -$C(a5),a1
  48.     lea    0(a1,d2.l),a0
  49.     move.b    (a0),d0
  50.     move.l    _myfilename,a1
  51.     lea    0(a1,d2.l),a0
  52.     move.b    d0,(a0)
  53.     move.l    -$C(a5),a1
  54.     lea    0(a1,d2.l),a0
  55.     move.b    (a0),d0
  56.     move.l    _myconfigfile,a1
  57.     lea    0(a1,d2.l),a0
  58.     move.b    d0,(a0)
  59.     addq.l    #1,d2
  60. L104
  61.     move.l    -$C(a5),a1
  62.     lea    0(a1,d2.l),a0
  63.     move.b    (a0),d0
  64.     cmp.b    #$A,d0
  65.     bne.b    L103
  66. L105
  67.     bra.b    L107
  68. L106
  69.     move.l    _myprefs,a1
  70.     lea    0(a1,d3.l),a0
  71.     move.b    (a0),d0
  72.     move.l    _myconfigfile,a1
  73.     lea    0(a1,d2.l),a0
  74.     move.b    d0,(a0)
  75.     addq.l    #1,d2
  76.     addq.l    #1,d3
  77. L107
  78.     move.l    _myprefs,a1
  79.     lea    0(a1,d3.l),a0
  80.     move.b    (a0),d0
  81.     bne.b    L106
  82. L108
  83. L109
  84.     moveq    #0,d0
  85.     movem.l    (a7)+,d2/d3/a6
  86.     unlk    a5
  87.     rts
  88.  
  89.     XDEF    _Makecopystring
  90. _Makecopystring
  91. L117    EQU    -4
  92.     link    a5,#L117
  93.     movem.l    d2/a6,-(a7)
  94. L111
  95.     moveq    #0,d2
  96.     move.l    #$200,d0
  97.     move.l    _mypool,a0
  98.     move.l    _SysBase,a6
  99.     jsr    -$2C4(a6)
  100.     move.l    d0,_mycopystring
  101.     move.l    _mycopystring,a0
  102.     cmp.w    #0,a0
  103.     beq.b    L116
  104. L112
  105.     bra.b    L114
  106. L113
  107.     move.l    _Emptystring,a1
  108.     lea    0(a1,d2.l),a0
  109.     move.b    (a0),d0
  110.     move.l    _mycopystring,a1
  111.     lea    0(a1,d2.l),a0
  112.     move.b    d0,(a0)
  113.     addq.l    #1,d2
  114. L114
  115.     move.l    _mycopystring,a1
  116.     lea    0(a1,d2.l),a0
  117.     move.b    (a0),d0
  118.     bne.b    L113
  119. L115
  120. L116
  121.     moveq    #0,d0
  122.     movem.l    (a7)+,d2/a6
  123.     unlk    a5
  124.     rts
  125.  
  126.     XDEF    _checkNextwindow
  127. _checkNextwindow
  128. L126    EQU    -4
  129.     link    a5,#L126
  130.     movem.l    d2,-(a7)
  131. L118
  132.     moveq    #0,d0
  133.     move.l    #1,_Ssearch
  134.     bra.b    L123
  135. L119
  136.     move.l    _otherwindow,a0
  137.     move.l    $20(a0),a0
  138.     add.l    d0,a0
  139.     move.b    (a0),d2
  140.     move.l    _SearchString,a1
  141.     lea    0(a1,d0.l),a0
  142.     move.b    (a0),d1
  143.     cmp.b    d1,d2
  144.     bne.b    L121
  145. L120
  146.     addq.l    #1,d0
  147.     bra.b    L123
  148. L121
  149.     clr.l    _Ssearch
  150. L122
  151. L123
  152.     move.l    _Ssearch,d1
  153.     cmp.l    #1,d1
  154.     bne.b    L125
  155. L124
  156.     cmp.l    #7,d0
  157.     blt.b    L119
  158. L125
  159.     moveq    #0,d0
  160.     movem.l    (a7)+,d2
  161.     unlk    a5
  162.     rts
  163.  
  164.     XDEF    _calculate_windows
  165. _calculate_windows
  166. L154    EQU    -$10
  167.     link    a5,#L154
  168.     movem.l    d2-d5/a6,-(a7)
  169. L127
  170.     moveq    #0,d3
  171.     moveq    #0,d2
  172.     moveq    #0,d0
  173.     moveq    #0,d1
  174.     move.l    _otherwindow,a0
  175.     move.w    $8(a0),d0
  176.     ext.l    d0
  177.     move.l    d0,d3
  178.     move.l    _otherwindow,a0
  179.     move.w    $A(a0),d0
  180.     ext.l    d0
  181.     move.l    d0,d2
  182.     move.l    _otherwindow,a0
  183.     move.w    4(a0),d0
  184.     ext.l    d0
  185.     move.l    _otherwindow,a0
  186.     move.w    6(a0),d1
  187.     ext.l    d1
  188.     move.l    _installerpos,d4
  189.     cmp.l    #1,d4
  190.     bne.b    L129
  191. L128
  192.     move.l    _myscreenX,d4
  193.     divsl.l    #4,d4
  194.     divsl.l    #2,d3
  195.     sub.l    d3,d4
  196.     sub.l    d0,d4
  197.     move.l    d4,d0
  198.     move.l    _myscreenY,d3
  199.     divsl.l    #4,d3
  200.     divsl.l    #2,d2
  201.     sub.l    d2,d3
  202.     sub.l    d1,d3
  203.     move.l    d3,d1
  204.     bra    L153
  205. L129
  206.     move.l    _installerpos,d4
  207.     cmp.l    #2,d4
  208.     bne.b    L131
  209. L130
  210.     move.l    _myscreenX,d4
  211.     divsl.l    #2,d4
  212.     divsl.l    #2,d3
  213.     sub.l    d3,d4
  214.     sub.l    d0,d4
  215.     move.l    d4,d0
  216.     move.l    _myscreenY,d3
  217.     divsl.l    #4,d3
  218.     divsl.l    #2,d2
  219.     sub.l    d2,d3
  220.     sub.l    d1,d3
  221.     move.l    d3,d1
  222.     bra    L153
  223. L131
  224.     move.l    _installerpos,d4
  225.     cmp.l    #3,d4
  226.     bne.b    L133
  227. L132
  228.     move.l    _myscreenX,d4
  229.     divsl.l    #4,d4
  230.     muls.l    #3,d4
  231.     divsl.l    #2,d3
  232.     sub.l    d3,d4
  233.     sub.l    d0,d4
  234.     move.l    d4,d0
  235.     move.l    _myscreenY,d3
  236.     divsl.l    #4,d3
  237.     divsl.l    #2,d2
  238.     sub.l    d2,d3
  239.     sub.l    d1,d3
  240.     move.l    d3,d1
  241.     bra    L153
  242. L133
  243.     move.l    _installerpos,d4
  244.     cmp.l    #4,d4
  245.     bne.b    L135
  246. L134
  247.     move.l    _myscreenX,d4
  248.     divsl.l    #4,d4
  249.     divsl.l    #2,d3
  250.     sub.l    d3,d4
  251.     sub.l    d0,d4
  252.     move.l    d4,d0
  253.     move.l    _myscreenY,d3
  254.     divsl.l    #2,d3
  255.     divsl.l    #2,d2
  256.     sub.l    d2,d3
  257.     sub.l    d1,d3
  258.     move.l    d3,d1
  259.     bra    L153
  260. L135
  261.     move.l    _installerpos,d4
  262.     cmp.l    #5,d4
  263.     bne.b    L137
  264. L136
  265.     moveq    #0,d0
  266.     moveq    #0,d1
  267.     bra    L153
  268. L137
  269.     move.l    _installerpos,d4
  270.     cmp.l    #6,d4
  271.     bne.b    L139
  272. L138
  273.     move.l    _myscreenX,d4
  274.     divsl.l    #4,d4
  275.     muls.l    #3,d4
  276.     divsl.l    #2,d3
  277.     sub.l    d3,d4
  278.     sub.l    d0,d4
  279.     move.l    d4,d0
  280.     move.l    _myscreenY,d3
  281.     divsl.l    #2,d3
  282.     divsl.l    #2,d2
  283.     sub.l    d2,d3
  284.     sub.l    d1,d3
  285.     move.l    d3,d1
  286.     bra    L153
  287. L139
  288.     move.l    _installerpos,d4
  289.     cmp.l    #7,d4
  290.     bne.b    L141
  291. L140
  292.     move.l    _myscreenX,d4
  293.     divsl.l    #4,d4
  294.     divsl.l    #2,d3
  295.     sub.l    d3,d4
  296.     sub.l    d0,d4
  297.     move.l    d4,d0
  298.     move.l    _myscreenY,d3
  299.     divsl.l    #4,d3
  300.     muls.l    #3,d3
  301.     divsl.l    #2,d2
  302.     sub.l    d2,d3
  303.     sub.l    d1,d3
  304.     move.l    d3,d1
  305.     bra    L153
  306. L141
  307.     move.l    _installerpos,d4
  308.     cmp.l    #$8,d4
  309.     bne.b    L143
  310. L142
  311.     move.l    _myscreenX,d4
  312.     divsl.l    #2,d4
  313.     divsl.l    #2,d3
  314.     sub.l    d3,d4
  315.     sub.l    d0,d4
  316.     move.l    d4,d0
  317.     move.l    _myscreenY,d3
  318.     divsl.l    #4,d3
  319.     muls.l    #3,d3
  320.     divsl.l    #2,d2
  321.     sub.l    d2,d3
  322.     sub.l    d1,d3
  323.     move.l    d3,d1
  324.     bra.b    L153
  325. L143
  326.     move.l    _installerpos,d4
  327.     cmp.l    #$9,d4
  328.     bne.b    L153
  329. L144
  330.     move.l    _myscreenX,d4
  331.     divsl.l    #4,d4
  332.     muls.l    #3,d4
  333.     divsl.l    #2,d3
  334.     sub.l    d3,d4
  335.     sub.l    d0,d4
  336.     move.l    d4,d0
  337.     move.l    _myscreenY,d3
  338.     divsl.l    #4,d3
  339.     muls.l    #3,d3
  340.     divsl.l    #2,d2
  341.     sub.l    d2,d3
  342.     sub.l    d1,d3
  343.     move.l    d3,d1
  344. L145
  345. L146
  346. L147
  347. L148
  348. L149
  349. L150
  350. L151
  351. L152
  352. L153
  353.     move.l    _otherwindow,a0
  354.     move.l    _IntuitionBase,a6
  355.     jsr    -$A8(a6)
  356.     moveq    #0,d0
  357.     movem.l    (a7)+,d2-d5/a6
  358.     unlk    a5
  359.     rts
  360.  
  361.     XDEF    _moveInstaller
  362. _moveInstaller
  363. L165    EQU    0
  364.     link    a5,#L165
  365.     movem.l    a6,-(a7)
  366. L156
  367.     lea    L155(pc),a0
  368.     move.l    _IntuitionBase,a6
  369.     jsr    -$1FE(a6)
  370.     move.l    d0,_mylockscreen
  371.     move.l    _mylockscreen,a0
  372.     move.w    $C(a0),d0
  373.     ext.l    d0
  374.     move.l    d0,_myscreenX
  375.     move.l    _mylockscreen,a0
  376.     move.w    $E(a0),d0
  377.     ext.l    d0
  378.     move.l    d0,_myscreenY
  379.     move.l    _mylockscreen,a0
  380.     move.l    4(a0),a0
  381.     move.l    a0,_otherwindow
  382.     bra.b    L162
  383. L157
  384.     move.l    _otherwindow,a0
  385.     move.l    $20(a0),a0
  386.     cmp.w    #0,a0
  387.     beq.b    L161
  388. L158
  389.     jsr    _checkNextwindow
  390.     tst.l    _Ssearch
  391.     beq.b    L161
  392. L159
  393.     jsr    _calculate_windows
  394.     bra.b    L164
  395. L160
  396. L161
  397.     move.l    _otherwindow,a0
  398.     move.l    (a0),a0
  399.     move.l    a0,_otherwindow
  400. L162
  401.     tst.l    _otherwindow
  402.     bne.b    L157
  403. L163
  404. L164
  405.     sub.l    a0,a0
  406.     move.l    _mylockscreen,a1
  407.     move.l    _IntuitionBase,a6
  408.     jsr    -$204(a6)
  409.     moveq    #0,d0
  410.     movem.l    (a7)+,a6
  411.     unlk    a5
  412.     rts
  413.  
  414.     XDEF    _readfileSimple
  415. _readfileSimple
  416. L183    EQU    -$8
  417.     link    a5,#L183
  418.     movem.l    d2/d3/a6,-(a7)
  419. L166
  420.     moveq    #$A,d3
  421.     moveq    #0,d0
  422.     clr.l    _myallocmem
  423.     clr.l    _myopenfile
  424.     move.l    d3,d0
  425.     move.l    _mypool,a0
  426.     move.l    _SysBase,a6
  427.     jsr    -$2C4(a6)
  428.     move.l    d0,_myallocmem
  429.     move.l    _myallocmem,a0
  430.     cmp.w    #0,a0
  431.     beq    L182
  432. L167
  433.     move.l    _myconfigfile,d1
  434.     move.l    #$3ED,d2
  435.     move.l    _DOSBase,a6
  436.     jsr    -$1E(a6)
  437.     move.l    d0,_myopenfile
  438.     tst.l    _myopenfile
  439.     beq    L181
  440. L168
  441.     move.l    _myopenfile,d1
  442.     move.l    _myallocmem,d2
  443.     move.l    _DOSBase,a6
  444.     jsr    -$2A(a6)
  445.     move.l    _myallocmem,a1
  446.     lea    (a1),a0
  447.     move.b    (a0),d0
  448.     extb.l    d0
  449.     sub.l    #$30,d0
  450.     move.l    d0,_inputpos
  451.     move.l    _inputpos,d0
  452.     cmp.l    #$9,d0
  453.     bgt.b    L170
  454. L169
  455.     move.l    _inputpos,d0
  456.     cmp.l    #1,d0
  457.     bge.b    L171
  458. L170
  459.     move.l    #1,_inputpos
  460. L171
  461.     move.l    _myallocmem,a1
  462.     lea    1(a1),a0
  463.     move.b    (a0),d0
  464.     extb.l    d0
  465.     sub.l    #$30,d0
  466.     move.l    d0,_myborderless
  467.     move.l    _myborderless,d0
  468.     cmp.l    #1,d0
  469.     bgt.b    L173
  470. L172
  471.     tst.l    _myborderless
  472.     bpl.b    L174
  473. L173
  474.     clr.l    _myborderless
  475. L174
  476.     move.l    _myallocmem,a1
  477.     lea    2(a1),a0
  478.     move.b    (a0),d0
  479.     extb.l    d0
  480.     sub.l    #$30,d0
  481.     move.l    d0,_mybackdrop
  482.     move.l    _mybackdrop,d0
  483.     cmp.l    #1,d0
  484.     bgt.b    L176
  485. L175
  486.     tst.l    _mybackdrop
  487.     bpl.b    L177
  488. L176
  489.     clr.l    _mybackdrop
  490. L177
  491.     move.l    _myallocmem,a1
  492.     lea    3(a1),a0
  493.     move.b    (a0),d0
  494.     extb.l    d0
  495.     sub.l    #$30,d0
  496.     move.l    d0,_installerpos
  497.     move.l    _installerpos,d0
  498.     cmp.l    #$9,d0
  499.     bgt.b    L179
  500. L178
  501.     move.l    _installerpos,d0
  502.     cmp.l    #1,d0
  503.     bge.b    L180
  504. L179
  505.     move.l    #$9,_installerpos
  506. L180
  507.     move.l    _myopenfile,d1
  508.     move.l    _DOSBase,a6
  509.     jsr    -$24(a6)
  510. L181
  511.     move.l    d3,d0
  512.     move.l    _mypool,a0
  513.     move.l    _myallocmem,a1
  514.     move.l    _SysBase,a6
  515.     jsr    -$2CA(a6)
  516. L182
  517.     moveq    #0,d0
  518.     movem.l    (a7)+,d2/d3/a6
  519.     unlk    a5
  520.     rts
  521.  
  522.     XDEF    _mycopyfile
  523. _mycopyfile
  524. L185    EQU    0
  525.     link    a5,#L185
  526.     movem.l    d2/d3/a6,-(a7)
  527. L184
  528.     move.l    _mycopystring,d1
  529.     moveq    #0,d2
  530.     moveq    #0,d3
  531.     move.l    _DOSBase,a6
  532.     jsr    -$DE(a6)
  533.     moveq    #0,d0
  534.     movem.l    (a7)+,d2/d3/a6
  535.     unlk    a5
  536.     rts
  537.  
  538.     XDEF    _mydeletefile
  539. _mydeletefile
  540. L187    EQU    0
  541.     link    a5,#L187
  542.     movem.l    d2/d3/a6,-(a7)
  543. L186
  544.     move.l    _mydeletestring,d1
  545.     moveq    #0,d2
  546.     moveq    #0,d3
  547.     move.l    _DOSBase,a6
  548.     jsr    -$DE(a6)
  549.     moveq    #0,d0
  550.     movem.l    (a7)+,d2/d3/a6
  551.     unlk    a5
  552.     rts
  553.  
  554.     XDEF    _notify
  555. _notify
  556. L189    EQU    -$30
  557.     link    a5,#L189
  558.     movem.l    a2/a6,-(a7)
  559.     move.l    $8(a5),a1
  560. L188
  561.     lea    -$30(a5),a0
  562.     clr.l    (a0)+
  563.     moveq    #$A,d0
  564. L190
  565.     clr.l    (a0)+
  566.     dbra    d0,L190
  567.     move.l    #2,-$24(a5)
  568.     move.l    _mytask,-$20(a5)
  569.     move.b    _mysignal+3,d0
  570.     move.b    d0,-$1C(a5)
  571.     move.l    a1,-$30(a5)
  572.     lea    -$30(a5),a0
  573.     move.l    a0,d1
  574.     move.l    _DOSBase,a6
  575.     jsr    -$378(a6)
  576.     moveq    #1,d0
  577.     move.l    _mysignal,d1
  578.     asl.l    d1,d0
  579.     move.l    _SysBase,a6
  580.     jsr    -$13E(a6)
  581.     lea    -$30(a5),a0
  582.     move.l    a0,d1
  583.     move.l    _DOSBase,a6
  584.     jsr    -$37E(a6)
  585.     moveq    #0,d0
  586.     movem.l    (a7)+,a2/a6
  587.     unlk    a5
  588.     rts
  589.  
  590.     XDEF    _wait_for_datatype
  591. _wait_for_datatype
  592. L218    EQU    -$22
  593.     link    a5,#L218
  594.     movem.l    d2/a2/a3/a6,-(a7)
  595. L191
  596.     moveq    #1,d2
  597.     bra    L216
  598. L192
  599.     move.l    _Mywindow,a0
  600.     move.l    $56(a0),a0
  601.     move.b    $F(a0),d0
  602.     and.l    #$FF,d0
  603.     moveq    #1,d1
  604.     asl.l    d0,d1
  605.     move.l    d1,d0
  606.     or.l    #$1000,d0
  607.     move.l    _SysBase,a6
  608.     jsr    -$13E(a6)
  609.     and.l    #$1000,d0
  610.     beq    L214
  611. L193
  612.     moveq    #0,d2
  613. L194
  614.     bra    L214
  615. L195
  616.     move.l    -$A(a5),a0
  617.     move.l    $14(a0),d0
  618.     cmp.l    #$200000,d0
  619.     beq.b    L197
  620.     bgt.b    L219
  621.     cmp.l    #$200,d0
  622.     beq.b    L196
  623.     bra    L213
  624. L219
  625.     cmp.l    #$800000,d0
  626.     beq.b    L200
  627.     bra    L213
  628. L196
  629.     moveq    #0,d2
  630.     bra    L213
  631. L197
  632.     move.l    -$A(a5),a0
  633.     move.w    $18(a0),d0
  634.     cmp.w    #$51,d0
  635.     beq.b    L198
  636.     bgt.b    L220
  637.     cmp.w    #$1B,d0
  638.     beq.b    L198
  639.     bra    L213
  640. L220
  641.     cmp.w    #$71,d0
  642.     beq.b    L198
  643.     bra    L213
  644. L198
  645.     moveq    #0,d2
  646. L199
  647.     bra    L213
  648. L200
  649.     move.l    -$A(a5),a0
  650.     move.l    $1C(a0),a0
  651.     move.l    a0,-$16(a5)
  652.     move.l    -$16(a5),-$E(a5)
  653.     bra    L211
  654. L201
  655.     move.l    4(a0),d0
  656.     move.l    d0,d1
  657.     move.l    (a0),d0
  658.     cmp.l    #$8000101D,d0
  659.     beq    L209
  660.     bgt.b    L221
  661.     cmp.l    #$8000101C,d0
  662.     beq.b    L202
  663.     bra    L211
  664. L221
  665.     cmp.l    #$80001020,d0
  666.     beq    L206
  667.     bra    L211
  668. L202
  669.     tst.l    d1
  670.     beq.b    L204
  671. L203
  672.     clr.l    -(a7)
  673.     pea    1.w
  674.     move.l    #$80000098,-(a7)
  675.     move.l    _Mywindow,a0
  676.     move.l    a7,a1
  677.     move.l    _IntuitionBase,a6
  678.     jsr    -$330(a6)
  679.     add.w    #$C,a7
  680.     bra    L211
  681. L204
  682.     clr.l    -(a7)
  683.     clr.l    -(a7)
  684.     move.l    #$80000097,-(a7)
  685.     move.l    _Mywindow,a0
  686.     move.l    a7,a1
  687.     move.l    _IntuitionBase,a6
  688.     jsr    -$330(a6)
  689.     add.w    #$C,a7
  690. L205
  691.     bra.b    L211
  692. L206
  693.     tst.l    d1
  694.     beq.b    L211
  695. L207
  696.     move.l    #$80001021,d0
  697.     moveq    #0,d1
  698.     move.l    -$16(a5),a0
  699.     move.l    _UtilityBase,a6
  700.     jsr    -$24(a6)
  701. L208
  702.     bra.b    L211
  703. L209
  704.     clr.l    -(a7)
  705.     move.l    _mydataobject,a0
  706.     move.l    _Mywindow,a1
  707.     sub.l    a2,a2
  708.     move.l    a7,a3
  709.     move.l    _DataTypesBase,a6
  710.     jsr    -$4E(a6)
  711.     addq.w    #4,a7
  712.     moveq    #0,d2
  713. L210
  714. L211
  715.     lea    -$E(a5),a0
  716.     move.l    _UtilityBase,a6
  717.     jsr    -$30(a6)
  718.     move.l    d0,a0
  719.     cmp.w    #0,a0
  720.     bne    L201
  721. L212
  722. L213
  723.     move.l    -$A(a5),a1
  724.     move.l    _SysBase,a6
  725.     jsr    -$17A(a6)
  726. L214
  727.     move.l    _Mywindow,a0
  728.     move.l    $56(a0),a0
  729.     move.l    _SysBase,a6
  730.     jsr    -$174(a6)
  731.     move.l    d0,-$A(a5)
  732.     tst.l    -$A(a5)
  733.     bne    L195
  734. L215
  735. L216
  736.     tst.w    d2
  737.     bne    L192
  738. L217
  739.     moveq    #0,d0
  740.     movem.l    (a7)+,d2/a2/a3/a6
  741.     unlk    a5
  742.     rts
  743.  
  744.     XDEF    _get_screen_information
  745. _get_screen_information
  746. L225    EQU    0
  747.     link    a5,#L225
  748.     movem.l    a6,-(a7)
  749. L222
  750.     lea    L155(pc),a0
  751.     move.l    _IntuitionBase,a6
  752.     jsr    -$1FE(a6)
  753.     move.l    d0,_mylockscreen
  754.     move.l    _mylockscreen,a0
  755.     move.w    $C(a0),d0
  756.     ext.l    d0
  757.     move.l    d0,_myscreenX
  758.     move.l    _mylockscreen,a0
  759.     move.w    $E(a0),d0
  760.     ext.l    d0
  761.     move.l    d0,_myscreenY
  762.     tst.l    _myborderless
  763.     bne.b    L224
  764. L223
  765.     move.l    _mylockscreen,a0
  766.     move.b    $23(a0),d0
  767.     extb.l    d0
  768.     move.l    d0,_winbordertop
  769.     move.l    _mylockscreen,a0
  770.     move.b    $24(a0),d0
  771.     extb.l    d0
  772.     move.l    d0,_winborderleft
  773. L224
  774.     sub.l    a0,a0
  775.     move.l    _mylockscreen,a1
  776.     move.l    _IntuitionBase,a6
  777.     jsr    -$204(a6)
  778.     moveq    #0,d0
  779.     movem.l    (a7)+,a6
  780.     unlk    a5
  781.     rts
  782.  
  783.     XDEF    _calculate_window
  784. _calculate_window
  785. L253    EQU    0
  786.     link    a5,#L253
  787.     movem.l    d2/a2/a6,-(a7)
  788. L226
  789.     clr.l    -(a7)
  790.     lea    _mybmhd,a0
  791.     move.l    a0,-(a7)
  792.     move.l    #$800010C9,-(a7)
  793.     move.l    _mydataobject,a0
  794.     move.l    a7,a2
  795.     move.l    _DataTypesBase,a6
  796.     jsr    -$42(a6)
  797.     add.w    #$C,a7
  798.     move.l    _mybmhd,a0
  799.     move.w    (a0),d0
  800.     and.l    #$FFFF,d0
  801.     move.l    d0,_mywindowX
  802.     move.l    _mybmhd,a0
  803.     move.w    2(a0),d0
  804.     and.l    #$FFFF,d0
  805.     move.l    d0,_mywindowY
  806.     move.l    _inputpos,d0
  807.     cmp.l    #1,d0
  808.     bne    L228
  809. L227
  810.     move.l    _myscreenX,d0
  811.     divsl.l    #4,d0
  812.     move.l    _mywindowX,d1
  813.     divsl.l    #2,d1
  814.     sub.l    d1,d0
  815.     move.l    d0,_mycenterX
  816.     move.l    _myscreenY,d0
  817.     divsl.l    #4,d0
  818.     move.l    _mywindowY,d1
  819.     divsl.l    #2,d1
  820.     sub.l    d1,d0
  821.     move.l    d0,_mycenterY
  822.     bra    L252
  823. L228
  824.     move.l    _inputpos,d0
  825.     cmp.l    #2,d0
  826.     bne    L230
  827. L229
  828.     move.l    _myscreenX,d0
  829.     divsl.l    #2,d0
  830.     move.l    _mywindowX,d1
  831.     divsl.l    #2,d1
  832.     sub.l    d1,d0
  833.     move.l    d0,_mycenterX
  834.     move.l    _myscreenY,d0
  835.     divsl.l    #4,d0
  836.     move.l    _mywindowY,d1
  837.     divsl.l    #2,d1
  838.     sub.l    d1,d0
  839.     move.l    d0,_mycenterY
  840.     bra    L252
  841. L230
  842.     move.l    _inputpos,d0
  843.     cmp.l    #3,d0
  844.     bne    L232
  845. L231
  846.     move.l    _myscreenX,d0
  847.     divsl.l    #4,d0
  848.     muls.l    #3,d0
  849.     move.l    _mywindowX,d1
  850.     divsl.l    #2,d1
  851.     sub.l    d1,d0
  852.     move.l    d0,_mycenterX
  853.     move.l    _myscreenY,d0
  854.     divsl.l    #4,d0
  855.     move.l    _mywindowY,d1
  856.     divsl.l    #2,d1
  857.     sub.l    d1,d0
  858.     move.l    d0,_mycenterY
  859.     bra    L252
  860. L232
  861.     move.l    _inputpos,d0
  862.     cmp.l    #4,d0
  863.     bne    L234
  864. L233
  865.     move.l    _myscreenX,d0
  866.     divsl.l    #4,d0
  867.     move.l    _mywindowX,d1
  868.     divsl.l    #2,d1
  869.     sub.l    d1,d0
  870.     move.l    d0,_mycenterX
  871.     move.l    _myscreenY,d0
  872.     divsl.l    #2,d0
  873.     move.l    _mywindowY,d1
  874.     divsl.l    #2,d1
  875.     sub.l    d1,d0
  876.     move.l    d0,_mycenterY
  877.     bra    L252
  878. L234
  879.     move.l    _inputpos,d0
  880.     cmp.l    #5,d0
  881.     bne    L236
  882. L235
  883.     move.l    _myscreenX,d0
  884.     divsl.l    #2,d0
  885.     move.l    _mywindowX,d1
  886.     divsl.l    #2,d1
  887.     sub.l    d1,d0
  888.     move.l    d0,_mycenterX
  889.     move.l    _myscreenY,d0
  890.     divsl.l    #2,d0
  891.     move.l    _mywindowY,d1
  892.     divsl.l    #2,d1
  893.     sub.l    d1,d0
  894.     move.l    d0,_mycenterY
  895.     bra    L252
  896. L236
  897.     move.l    _inputpos,d0
  898.     cmp.l    #6,d0
  899.     bne    L238
  900. L237
  901.     move.l    _myscreenX,d0
  902.     divsl.l    #4,d0
  903.     muls.l    #3,d0
  904.     move.l    _mywindowX,d1
  905.     divsl.l    #2,d1
  906.     sub.l    d1,d0
  907.     move.l    d0,_mycenterX
  908.     move.l    _myscreenY,d0
  909.     divsl.l    #2,d0
  910.     move.l    _mywindowY,d1
  911.     divsl.l    #2,d1
  912.     sub.l    d1,d0
  913.     move.l    d0,_mycenterY
  914.     bra    L252
  915. L238
  916.     move.l    _inputpos,d0
  917.     cmp.l    #7,d0
  918.     bne    L240
  919. L239
  920.     move.l    _myscreenX,d0
  921.     divsl.l    #4,d0
  922.     move.l    _mywindowX,d1
  923.     divsl.l    #2,d1
  924.     sub.l    d1,d0
  925.     move.l    d0,_mycenterX
  926.     move.l    _myscreenY,d0
  927.     divsl.l    #4,d0
  928.     muls.l    #3,d0
  929.     move.l    _mywindowY,d1
  930.     divsl.l    #2,d1
  931.     sub.l    d1,d0
  932.     move.l    d0,_mycenterY
  933.     bra    L252
  934. L240
  935.     move.l    _inputpos,d0
  936.     cmp.l    #$8,d0
  937.     bne    L242
  938. L241
  939.     move.l    _myscreenX,d0
  940.     divsl.l    #2,d0
  941.     move.l    _mywindowX,d1
  942.     divsl.l    #2,d1
  943.     sub.l    d1,d0
  944.     move.l    d0,_mycenterX
  945.     move.l    _myscreenY,d0
  946.     divsl.l    #4,d0
  947.     muls.l    #3,d0
  948.     move.l    _mywindowY,d1
  949.     divsl.l    #2,d1
  950.     sub.l    d1,d0
  951.     move.l    d0,_mycenterY
  952.     bra    L252
  953. L242
  954.     move.l    _inputpos,d0
  955.     cmp.l    #$9,d0
  956.     bne    L252
  957. L243
  958.     move.l    _myscreenX,d0
  959.     divsl.l    #4,d0
  960.     muls.l    #3,d0
  961.     move.l    _mywindowX,d1
  962.     divsl.l    #2,d1
  963.     sub.l    d1,d0
  964.     move.l    d0,_mycenterX
  965.     move.l    _myscreenY,d0
  966.     divsl.l    #4,d0
  967.     muls.l    #3,d0
  968.     move.l    _mywindowY,d1
  969.     divsl.l    #2,d1
  970.     sub.l    d1,d0
  971.     move.l    d0,_mycenterY
  972. L244
  973. L245
  974. L246
  975. L247
  976. L248
  977. L249
  978. L250
  979. L251
  980. L252
  981.     moveq    #0,d0
  982.     movem.l    (a7)+,d2/a2/a6
  983.     unlk    a5
  984.     rts
  985.  
  986.     XDEF    _process_picture
  987. _process_picture
  988. L259    EQU    -$10
  989.     link    a5,#L259
  990.     movem.l    a2/a3/a6,-(a7)
  991. L254
  992.     move.l    #1,_quit
  993.     jsr    _get_screen_information
  994.     clr.l    -(a7)
  995.     move.l    #-1,-(a7)
  996.     move.l    #$80030007,-(a7)
  997.     move.l    #-1,-(a7)
  998.     move.l    #$80030005,-(a7)
  999.     move.l    _winborderleft,-(a7)
  1000.     move.l    #$80030001,-(a7)
  1001.     move.l    _winbordertop,-(a7)
  1002.     move.l    #$80030003,-(a7)
  1003.     pea    1.w
  1004.     pea    6.w
  1005.     pea    1.w
  1006.     move.l    #$800010D3,-(a7)
  1007.     move.l    #$70696374,-(a7)
  1008.     move.l    #$8000101F,-(a7)
  1009.     pea    1.w
  1010.     move.l    #$800010FB,-(a7)
  1011.     pea    2.w
  1012.     move.l    #$80001065,-(a7)
  1013.     move.l    _myshowfilename,d0
  1014.     move.l    a7,a0
  1015.     move.l    _DataTypesBase,a6
  1016.     jsr    -$30(a6)
  1017.     add.w    #$4C,a7
  1018.     move.l    d0,_mydataobject
  1019.     move.l    _mydataobject,a0
  1020.     cmp.w    #0,a0
  1021.     beq    L258
  1022. L255
  1023.     jsr    _calculate_window
  1024.     clr.l    -(a7)
  1025.     move.l    #$A00210,-(a7)
  1026.     move.l    #$8000006A,-(a7)
  1027.     move.l    _myborderless,-(a7)
  1028.     move.l    #$80000088,-(a7)
  1029.     move.l    _mywindowY,-(a7)
  1030.     move.l    #$80000077,-(a7)
  1031.     move.l    _mywindowX,-(a7)
  1032.     move.l    #$80000076,-(a7)
  1033.     move.l    _mycenterY,-(a7)
  1034.     move.l    #$80000065,-(a7)
  1035.     move.l    _mycenterX,-(a7)
  1036.     move.l    #$80000064,-(a7)
  1037.     move.l    _mybackdrop,-(a7)
  1038.     move.l    #$80000085,-(a7)
  1039.     sub.l    a0,a0
  1040.     move.l    a7,a1
  1041.     move.l    _IntuitionBase,a6
  1042.     jsr    -$25E(a6)
  1043.     add.w    #$3C,a7
  1044.     move.l    d0,_Mywindow
  1045.     move.l    _Mywindow,a0
  1046.     cmp.w    #0,a0
  1047.     beq    L258
  1048. L256
  1049.     move.l    #1,_mywindowopen
  1050.     move.l    _Mywindow,a0
  1051.     move.l    $32(a0),a0
  1052.     move.l    _Mywindow,a0
  1053.     move.l    $2E(a0),a0
  1054.     add.w    #$2C,a0
  1055.     move.l    4(a0),a0
  1056.     clr.l    -(a7)
  1057.     move.l    #-1,-(a7)
  1058.     move.l    #$80040001,-(a7)
  1059.     move.l    _mydataobject,a0
  1060.     sub.l    a1,a1
  1061.     sub.l    a2,a2
  1062.     move.l    a7,a3
  1063.     move.l    _DataTypesBase,a6
  1064.     jsr    -$3C(a6)
  1065.     add.w    #$C,a7
  1066.     moveq    #-1,d0
  1067.     move.l    _Mywindow,a0
  1068.     sub.l    a1,a1
  1069.     move.l    _mydataobject,a2
  1070.     move.l    _DataTypesBase,a6
  1071.     jsr    -$48(a6)
  1072.     move.l    _mydataobject,a0
  1073.     move.l    _Mywindow,a1
  1074.     sub.l    a2,a2
  1075.     sub.l    a3,a3
  1076.     move.l    _DataTypesBase,a6
  1077.     jsr    -$4E(a6)
  1078.     jsr    _wait_for_datatype
  1079.     clr.l    _quit
  1080. L257
  1081. L258
  1082.     moveq    #0,d0
  1083.     movem.l    (a7)+,a2/a3/a6
  1084.     unlk    a5
  1085.     rts
  1086.  
  1087.     XDEF    _wait_for_picture
  1088. _wait_for_picture
  1089. L264    EQU    0
  1090.     link    a5,#L264
  1091.     movem.l    a6,-(a7)
  1092. L260
  1093.     move.l    _mywindowopen,d0
  1094.     cmp.l    #1,d0
  1095.     bne    L262
  1096. L261
  1097.     move.l    _myfilename,-(a7)
  1098.     jsr    _notify
  1099.     addq.w    #4,a7
  1100.     move.l    _Mywindow,a0
  1101.     move.l    _IntuitionBase,a6
  1102.     jsr    -$48(a6)
  1103.     move.l    _Mywindow,a0
  1104.     move.l    _mydataobject,a1
  1105.     move.l    _DataTypesBase,a6
  1106.     jsr    -$60(a6)
  1107.     move.l    _mydataobject,a0
  1108.     move.l    _DataTypesBase,a6
  1109.     jsr    -$36(a6)
  1110.     clr.l    _mywindowopen
  1111.     jsr    _mydeletefile
  1112.     bra.b    L263
  1113. L262
  1114.     jsr    _mycopyfile
  1115.     jsr    _readfileSimple
  1116.     jsr    _moveInstaller
  1117.     jsr    _process_picture
  1118. L263
  1119.     moveq    #0,d0
  1120.     movem.l    (a7)+,a6
  1121.     unlk    a5
  1122.     rts
  1123.  
  1124.     XDEF    _main
  1125. _main
  1126. L282    EQU    0
  1127.     link    a5,#L282
  1128.     movem.l    d2/a6,-(a7)
  1129. L268
  1130.     sub.l    a1,a1
  1131.     move.l    _SysBase,a6
  1132.     jsr    -$126(a6)
  1133.     move.l    d0,_mytask
  1134.     moveq    #-1,d0
  1135.     move.l    _SysBase,a6
  1136.     jsr    -$14A(a6)
  1137.     extb.l    d0
  1138.     move.l    d0,_mysignal
  1139.     move.l    _mysignal,d0
  1140.     cmp.l    #-1,d0
  1141.     beq    L281
  1142. L269
  1143.     moveq    #$27,d0
  1144.     lea    L265(pc),a1
  1145.     move.l    _SysBase,a6
  1146.     jsr    -$228(a6)
  1147.     move.l    d0,_IntuitionBase
  1148.     move.l    _IntuitionBase,a0
  1149.     cmp.w    #0,a0
  1150.     beq    L280
  1151. L270
  1152.     moveq    #$27,d0
  1153.     lea    L266(pc),a1
  1154.     move.l    _SysBase,a6
  1155.     jsr    -$228(a6)
  1156.     move.l    d0,_DataTypesBase
  1157.     move.l    _DataTypesBase,a0
  1158.     cmp.w    #0,a0
  1159.     beq    L279
  1160. L271
  1161.     moveq    #$27,d0
  1162.     lea    L267(pc),a1
  1163.     move.l    _SysBase,a6
  1164.     jsr    -$228(a6)
  1165.     move.l    d0,_GfxBase
  1166.     move.l    _GfxBase,a0
  1167.     cmp.w    #0,a0
  1168.     beq    L278
  1169. L272
  1170.     move.l    #$10001,d0
  1171.     move.l    #$200,d1
  1172.     move.l    #$200,d2
  1173.     move.l    _SysBase,a6
  1174.     jsr    -$2B8(a6)
  1175.     move.l    d0,_mypool
  1176.     move.l    _mypool,a0
  1177.     cmp.w    #0,a0
  1178.     beq.b    L278
  1179. L273
  1180.     jsr    _Makefilename
  1181.     jsr    _get_screen_information
  1182.     bra.b    L275
  1183. L274
  1184.     jsr    _wait_for_picture
  1185. L275
  1186.     tst.l    _quit
  1187.     beq.b    L274
  1188. L276
  1189.     move.l    _mypool,a0
  1190.     move.l    _SysBase,a6
  1191.     jsr    -$2BE(a6)
  1192. L277
  1193. L278
  1194.     move.l    _GfxBase,a1
  1195.     move.l    _SysBase,a6
  1196.     jsr    -$19E(a6)
  1197. L279
  1198.     move.l    _DataTypesBase,a1
  1199.     move.l    _SysBase,a6
  1200.     jsr    -$19E(a6)
  1201. L280
  1202.     move.l    _IntuitionBase,a1
  1203.     move.l    _SysBase,a6
  1204.     jsr    -$19E(a6)
  1205. L281
  1206.     move.l    _mysignal,d0
  1207.     move.l    _SysBase,a6
  1208.     jsr    -$150(a6)
  1209.     movem.l    (a7)+,d2/a6
  1210.     unlk    a5
  1211.     moveq    #0,d0
  1212.     rts
  1213.  
  1214. L96
  1215.     dc.b    '$VER: Installer Addon 0.5 (2.5.97)',0
  1216. L91
  1217.     dc.b    '.prefs',0
  1218. L97
  1219.     dc.b    'Install ',0
  1220. L155
  1221.     dc.b    'Workbench',0
  1222. L94
  1223.     dc.b    'copy >nil: <nil: ',0
  1224. L93
  1225.     dc.b    'copy >nil: <nil: ram:test to t:ia_use',0
  1226. L266
  1227.     dc.b    'datatypes.library',0
  1228. L95
  1229.     dc.b    'delete >nil: <nil: t:ia_use',0
  1230. L267
  1231.     dc.b    'graphics.library',0
  1232. L265
  1233.     dc.b    'intuition.library',0
  1234. L92
  1235.     dc.b    't:ia_use',0
  1236.  
  1237.     SECTION ":1",DATA
  1238.  
  1239.     XDEF    _IntuitionBase
  1240. _IntuitionBase
  1241.     dc.l    0
  1242.     XDEF    _GfxBase
  1243. _GfxBase
  1244.     dc.l    0
  1245.     XDEF    _CybergraphicsBase
  1246. _CybergraphicsBase
  1247.     dc.l    0
  1248.     XDEF    _DataTypesBase
  1249. _DataTypesBase
  1250.     dc.l    0
  1251.     XDEF    _mybmhd
  1252. _mybmhd
  1253.     dc.l    0
  1254.     XDEF    _mywindowX
  1255. _mywindowX
  1256.     dc.l    0
  1257.     XDEF    _mywindowY
  1258. _mywindowY
  1259.     dc.l    0
  1260.     XDEF    _quit
  1261. _quit
  1262.     dc.l    0
  1263.     XDEF    _myborderless
  1264. _myborderless
  1265.     dc.l    0
  1266.     XDEF    _mybackdrop
  1267. _mybackdrop
  1268.     dc.l    0
  1269.     XDEF    _inputpos
  1270. _inputpos
  1271.     dc.l    1
  1272.     XDEF    _winbordertop
  1273. _winbordertop
  1274.     dc.l    1
  1275.     XDEF    _winborderleft
  1276. _winborderleft
  1277.     dc.l    1
  1278.     XDEF    _installerpos
  1279. _installerpos
  1280.     dc.l    $9
  1281.     XDEF    _mywindowopen
  1282. _mywindowopen
  1283.     dc.l    0
  1284.     XDEF    _myallocmem
  1285. _myallocmem
  1286.     dc.l    0
  1287.     XDEF    _myopenfile
  1288. _myopenfile
  1289.     dc.l    0
  1290.     XDEF    _foundwindow
  1291. _foundwindow
  1292.     dc.l    0
  1293.     XDEF    _Cwindowx
  1294. _Cwindowx
  1295.     dc.l    0
  1296.     XDEF    _Cwindowy
  1297. _Cwindowy
  1298.     dc.l    0
  1299.     XDEF    _myprefs
  1300. _myprefs
  1301.     dc.l    L91
  1302.     XDEF    _myshowfilename
  1303. _myshowfilename
  1304.     dc.l    L92
  1305.     XDEF    _mycopystring
  1306. _mycopystring
  1307.     dc.l    L93
  1308.     XDEF    _Emptystring
  1309. _Emptystring
  1310.     dc.l    L94
  1311.     XDEF    _mydeletestring
  1312. _mydeletestring
  1313.     dc.l    L95
  1314.     XDEF    _Version
  1315. _Version
  1316.     dc.l    L96
  1317.     XDEF    _SearchString
  1318. _SearchString
  1319.     dc.l    L97
  1320.     XDEF    _otherwindow
  1321. _otherwindow
  1322.     dc.l    0
  1323.     XDEF    _mywintitle
  1324. _mywintitle
  1325.     dc.b    0
  1326.     CNOP    0,4
  1327.     XDEF    _Ssearch
  1328. _Ssearch
  1329.     dc.l    1
  1330.     XDEF    _mypool
  1331. _mypool
  1332.     dc.l    0
  1333.     XDEF    _myfilename
  1334. _myfilename
  1335.     dc.l    0
  1336.     XDEF    _myconfigfile
  1337. _myconfigfile
  1338.     dc.l    0
  1339.  
  1340.     SECTION ":2",BSS
  1341.  
  1342.     XDEF    _mytask
  1343. _mytask
  1344.     ds.l    1
  1345.     XDEF    _Mywindow
  1346. _Mywindow
  1347.     ds.l    1
  1348.     XDEF    _mydataobject
  1349. _mydataobject
  1350.     ds.l    1
  1351.     XDEF    _mysignal
  1352. _mysignal
  1353.     ds.l    1
  1354.     XDEF    _mycenterX
  1355. _mycenterX
  1356.     ds.l    1
  1357.     XDEF    _mycenterY
  1358. _mycenterY
  1359.     ds.l    1
  1360.     XDEF    _myscreenX
  1361. _myscreenX
  1362.     ds.l    1
  1363.     XDEF    _myscreenY
  1364. _myscreenY
  1365.     ds.l    1
  1366.     XDEF    _mylockscreen
  1367. _mylockscreen
  1368.     ds.l    1
  1369.     XDEF    _argallocmem
  1370. _argallocmem
  1371.     ds.l    1
  1372.  
  1373.     END
  1374.